#include<bits/stdc++.h>

using namespace std;
//杨辉三角的打印(自顶向下的分析方法)
/**
 * 阶乘模块
 * @param n
 * @return
 */
int fact(int n) { //n!
    int s = 1;
    for (int i = 2; i <= n; i++) {
        s *= i;
    }
    return s;
}

/**
 * 组合数模块
 * @param n
 * @param r
 * @return
 */
int cnr(int n, int r) {
    return fact(n) / fact(r) / fact(n - r);
}

/**
 * 打印杨辉三角模块
 * @param n
 */
void yh_triangle(int n) {
    for (int i = 0; i <= n; i++) {
        for (int j = 0; j <= i; j++) {
            cout << cnr(i, j) << " ";
        }
        cout << endl;
    }
}

int main() {
    int n;
    cin >> n;
    yh_triangle(n);

    return 0;
}
